load("@rules_cc//cc:defs.bzl", "cc_library")

package(default_visibility = ["//visibility:public"])

cc_library(
    name = "boost.preprocessor",
    hdrs = glob(
        [
            "include/**/*.hpp",
        ],
        exclude = [
            "include/boost/preprocessor/comparison/limits/not_equal_256.hpp",
            "include/boost/preprocessor/iteration/detail/bounds/*.hpp",
            "include/boost/preprocessor/iteration/detail/finish.hpp",
            "include/boost/preprocessor/iteration/detail/iter/*.hpp",
            "include/boost/preprocessor/iteration/detail/iter/limits/*.hpp",
            "include/boost/preprocessor/iteration/detail/limits/*.hpp",
            "include/boost/preprocessor/iteration/detail/local.hpp",
            "include/boost/preprocessor/iteration/detail/rlocal.hpp",
            "include/boost/preprocessor/iteration/detail/self.hpp",
            "include/boost/preprocessor/iteration/detail/start.hpp",
            "include/boost/preprocessor/slot/detail/counter.hpp",
            "include/boost/preprocessor/slot/detail/shared.hpp",
            "include/boost/preprocessor/slot/detail/slot*.hpp",
            "include/boost/preprocessor/seq/limits/fold_left_256.hpp",
        ],
    ),
    features = ["parse_headers"],
    includes = ["include"],
    textual_hdrs = glob([
        "include/boost/preprocessor/comparison/limits/not_equal_256.hpp",
        "include/boost/preprocessor/iteration/detail/bounds/*.hpp",
        "include/boost/preprocessor/iteration/detail/finish.hpp",
        "include/boost/preprocessor/iteration/detail/iter/*.hpp",
        "include/boost/preprocessor/iteration/detail/iter/limits/*.hpp",
        "include/boost/preprocessor/iteration/detail/limits/*.hpp",
        "include/boost/preprocessor/iteration/detail/local.hpp",
        "include/boost/preprocessor/iteration/detail/rlocal.hpp",
        "include/boost/preprocessor/iteration/detail/self.hpp",
        "include/boost/preprocessor/iteration/detail/start.hpp",
        "include/boost/preprocessor/slot/detail/counter.hpp",
        "include/boost/preprocessor/slot/detail/shared.hpp",
        "include/boost/preprocessor/slot/detail/slot*.hpp",
        "include/boost/preprocessor/seq/limits/fold_left_256.hpp",
    ]),
)
